home *** CD-ROM | disk | FTP | other *** search
- // ===========================================================================
- // AppPrefs.cp ©1996 Dmitry Boldyrev
- // ===========================================================================
-
- #include "AppPrefs.h"
-
- #define PREFS_FILE_NAME "\pSpotlight Hack Prefs"
- #define PREFS_FILE_CREATOR 'liTE'
- #define PREFS_FILE_TYPE 'pref'
- #define PREFS_STRUCT SpotlightPrefs
-
- void PrefsResetToDefaults(void *buffer)
- {
- PREFS_STRUCT *prefs = (PREFS_STRUCT*)buffer;
-
- prefs->activateModifiers = controlKey | optionKey;
- prefs->disableModifiers = controlKey | optionKey | rightControlKey | rightOptionKey;
- prefs->spotlightSize = 150;
- prefs->switchToFinder = true;
- prefs->hideApps = true;
- prefs->oneLayer = false;
- }
-
- Boolean PrefsLoad(void *buffer)
- {
- short vRefNum;
- long dirID;
- OSErr err;
- short fd;
- long size;
- long thePrefsVersion;
-
- err = FindFolder( kOnSystemDisk, kPreferencesFolderType, kCreateFolder, &vRefNum, &dirID );
- if (err != noErr) goto x1;
-
- err = HOpen(vRefNum, dirID, PREFS_FILE_NAME, fsCurPerm, &fd);
- if (err != noErr) goto x1;
-
- /* Reading Prefs version */
- size = sizeof(long);
- if ((err = FSRead(fd, &size, &thePrefsVersion)) != noErr) goto x2;
- if (thePrefsVersion != PREFS_VERSION) goto x2;
-
- size = sizeof(PREFS_STRUCT);
- if ((err = FSRead(fd, &size, buffer)) != noErr) goto x2;
-
- err = FSClose(fd);
- return true;
-
- x2: err = FSClose(fd);
- x1: PrefsResetToDefaults(buffer);
- return true;
- }
-
- Boolean PrefsSave(void *buffer)
- {
- short vRefNum;
- long dirID;
- OSErr err;
- short fd;
- long size;
- long thePrefsVersion;
-
- err = FindFolder(kOnSystemDisk, kPreferencesFolderType, kCreateFolder, &vRefNum, &dirID);
- if (err != noErr) return false;
-
- err = HDelete(vRefNum, dirID, PREFS_FILE_NAME);
- //if (err != noErr) return false; /* commented - Dave */
-
- err = HCreate(vRefNum, dirID, PREFS_FILE_NAME, PREFS_FILE_CREATOR, PREFS_FILE_TYPE);
- if (err != noErr) return false;
-
- err = HOpen(vRefNum, dirID, PREFS_FILE_NAME, fsCurPerm, &fd);
- if (err != noErr) goto x1;
-
- /* Writing Prefs version */
- size = sizeof(long);
- thePrefsVersion = PREFS_VERSION;
- if ((err = FSWrite(fd, &size, &thePrefsVersion)) != noErr) goto x2;
-
- size = sizeof(PREFS_STRUCT);
- if ((err = FSWrite(fd, &size, buffer)) != noErr) goto x2;
-
- err = FSClose(fd);
- return true;
-
- x2: err = FSClose(fd);
- x1: err = HDelete(vRefNum, dirID, PREFS_FILE_NAME);
- return false;
- }